package javaman.servlet;

import java.io.IOException;
import java.util.Date;

import javaman.gestor.GestorCategoria;
import javaman.gestor.GestorPagoPublicacion;
import javaman.gestor.GestorProfesor;
import javaman.gestor.GestorPublicacion;
import javaman.modelo.Categoria;
import javaman.modelo.PagoPublicacion;
import javaman.modelo.ProfesorCategoria;
import javaman.modelo.Publicacion;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class RegistrarPublicacionPagoServlet
 */
public class RegistrarPublicacionPagoServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	GestorProfesor gestorProfesor = new GestorProfesor();
	GestorCategoria gestorCategoria = new GestorCategoria();  
	GestorPublicacion gestorPublicacion = new GestorPublicacion();
	GestorPagoPublicacion gestorPago = new GestorPagoPublicacion();
	
    /**
     * @see HttpServlet#HttpServlet()
     */
    public RegistrarPublicacionPagoServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		// TODO Auto-generated method stub
		System.out.println("RegistrarPublicacionServlet post");
		String destino = "/listadoPublicacion.jsp";
		
		String accion = request.getParameter("accion");
		String nombreProfesor = request.getParameter("nombreProfesor");
		String perfil = request.getParameter("perfil");
		String texto = request.getParameter("texto");
		String idprofesor = request.getParameter("idprofesor");
		String idpaquete = request.getParameter("idpaquete");
		String estado = request.getParameter("estado");
		String monto = request.getParameter("monto");
		
		System.out.println("accion "+accion);
		System.out.println("nombreProfesor "+nombreProfesor);
		System.out.println("perfil "+perfil);
		System.out.println("texto "+texto);
		System.out.println("idprofesor "+idprofesor);
		System.out.println("idpaquete "+idpaquete);
		System.out.println("estado "+estado);

		ProfesorCategoria profesorCategoria[] = gestorProfesor.buscarCategoriasByProfesor(Integer.parseInt(idprofesor));
		Categoria categorias[] = null;
		if(profesorCategoria!= null) {
			categorias = new Categoria[profesorCategoria.length];
			for(int i=0;i<profesorCategoria.length;i++) {
				categorias[i] = gestorCategoria.buscarCategoriasById(profesorCategoria[i].getIdcategoria());
				
			}
		}
		
		String idpublicacion = request.getParameter("idpublicacion");
		
		Publicacion publicacion =gestorPublicacion.obtenerPublicacionById(Integer.parseInt(idpublicacion));
		
		PagoPublicacion pago = new PagoPublicacion();
		
		pago.setIdpublicacion(publicacion.getIdpublicacion());
		pago.setFecha(new Date());
		pago.setMonto(Double.parseDouble(monto));
		pago.setSaldo(Double.parseDouble(monto));
		
		String resultado = gestorPago.registrarPagoPublicacion(pago);
		
		if(!resultado.equals("OK")) {
			destino = "/formularioPublicacionPago.jsp";
			request.setAttribute("idpublicacion",idpublicacion);
			request.setAttribute("arrPaquete",gestorPublicacion.obtenerPaquetes());
			request.setAttribute("idprofesor",publicacion.getIdprofesor());
			request.setAttribute("texto",publicacion.getTexto());
			request.setAttribute("idpaquete",publicacion.getIdpaquete());
			request.setAttribute("nombreProfesor",nombreProfesor);
			request.setAttribute("perfil",perfil);
			request.setAttribute("estado",estado);
			request.setAttribute("arrCategorias",categorias);
			request.setAttribute("accion",accion);
			request.setAttribute("resultado", resultado);
		}else if(resultado.equals("OK")) {
			Publicacion[] publicaciones = gestorPublicacion.listarPubliacionesPorProfesor(Integer.parseInt(idprofesor));
			request.setAttribute("resultado", "El pago se registro correctamente.");
			request.setAttribute("idprofesor",idprofesor);
			request.setAttribute("nombreProfesor",nombreProfesor);
			request.setAttribute("arrListado",publicaciones);
		} 
		
	    getServletContext().getRequestDispatcher(destino).forward(request, response);
	}

}
